package TableModels;

import Entities.HdTipoEquipamento;
import Util.Constantes;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.DefaultTableModel;

/**
 * @author Ferrari
 */
public class TipoEquipamentoRelatorioTableModel {

    private static DefaultTableModel model;

    private TipoEquipamentoRelatorioTableModel() {
    }

    public static void init() {
        model = new DefaultTableModel();
        model.setColumnCount(2);
        String[] colunas = new String[]{
            Constantes.COLUNA_CODIGO,
            Constantes.COLUNA_DESCRICAO
        };
        model.setColumnIdentifiers(colunas);
    }

    private static void addTipoEquipamento(HdTipoEquipamento tipoEquipamento) {

        List<String> s = new ArrayList<>();
        try {
            s.add(String.valueOf(tipoEquipamento.getCoTipoEquipamento()));
        } catch (Exception e) {
            s.add(Constantes.STRING_VAZIA);
        }
        try {
            s.add(tipoEquipamento.getDeTipoEquipamento());
        } catch (Exception e) {
            s.add(Constantes.STRING_VAZIA);
        }

        String[] linha = new String[]{
            s.get(0),
            s.get(1)
        };

        getModel().addRow(linha);
    }

    public static DefaultTableModel addAllTipoEquipamento(List<HdTipoEquipamento> listaTipoEquipamentos) {
        limpaTabela();
        try{
            for (HdTipoEquipamento hdTipoEquipamento : listaTipoEquipamentos) {
                addTipoEquipamento(hdTipoEquipamento);
            }
            return getModel();
        }catch(Exception e){
            return getModel();
        }
    }

    public static DefaultTableModel getModel() {
        if (model == null) {
            init();
        }
        return model;
    }

    public static void limpaTabela() {
        getModel().setRowCount(0);
    }
}